

#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <time.h>

#include <sys/socket.h>
#include <sys/time.h>
#include <sys/select.h>

#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/udp.h>
#include <netinet/ip_icmp.h>
#include <unistd.h>
#include <netinet/in_systm.h>
#include <errno.h>
#include <netinet/udp.h>
#include <netdb.h>
#include <net/if.h>
#include <netinet/if_ether.h>

#include <pcap/pcap.h>
#include <arpa/inet.h>

#include "udp_var.h"

#define TTL_OUT 64
#define MAXLINE 1500
extern struct sockaddr * dest, * local;
extern socklen_t destlen, locallen;
extern int datalink;

extern char * device;

extern pcap_t * pd;
extern int rawfd;
extern int snaplen;

extern int verbose;
extern int zerosum;

/* function */

void cleanup(int);
char *next_pcap(int *);
void open_output(void);
void open_pcap(void);
void send_dns_query(void);
void test_udp(void);
void udp_write(char * , int);
struct udpiphdr * udp_read(void);


